# -*- coding: utf-8 -*-
import requests
import pandas as pd
import lxml.html
import json
'''
1.请求目标网站响应回来不是想要的数据-----请求的url不正确
2.NetWork--F5刷新---XHR过滤--点击左侧url观察preview的内容--headers获取正确的url地址
3.获取数据返回字符串型json格式，转化为python字典
'''
save_data=[]
for page in range(1,11):
    #1.构造浏览器，并加上referer参数
    header = {
        'referer': 'https://search.damai.cn/search.htm?spm=a2oeg.home.top.dcategory.591b23e1DPuwMN&order=1',
        'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36'
            }
    #2.明确url，找到数据存在的url ，并发送请求，根据规律构造url       
    url='https://search.damai.cn/searchajax.html?keyword=&cty=&ctl=&sctl=&tsg=0&st=&et=&order=1&pageSize=30&currPage={}&tn='.format(page)
    text1=requests.get(url,headers=header)
    #获取文本，是一个字符串 json格式，转化为python字典，后面之间进行取值即可
    result=text1.text
    #字符串型json转为python字典
    a=json.loads(result)
    #获取数据
    info=a['pageData']['resultData']
    data=[]
    for i in info:
        d={}
        d['艺人']=i['actors'][3:]
        d['类型']=i['categoryname']
        d['城市编号']=i['cityid']
        d['城市名称']=i['cityname']
        d['票价']=i['price_str']
        d['演出名称']=i['showtime']
        d['票价状态']=i['showstatus']
        d['演出名称']=i['name']
        d['演出地点']=i['venue']
        d['演出描述']=i['description']
        data.append(d)
        data1=pd.DataFrame(data)
    save_data.append(data1) 
    save_data1=pd.concat(save_data)#获取完整数据
    save_data1.index=range(save_data1.shape[0])#重置索引
    save_data1.to_csv('大麦网前10页数据.csv',encoding='utf_8_sig')#保存数据
    
    
    
    




